#include <iostream>
#include <string>
#include <vector>

struct Node
{
    std::string name;
    std::vector<Node *> dependencies; // 记录自己依赖的那些 Node*

    void print()
    {
        std::cout << name << std::endl;
    }

    /* 如果内部有可以直接返回的对象, 可以返回一个 view */
    // const std::vector<Node *> &get_dependencies()
    // {
    //     return dependencies;
    // }

    /*
     * 如果内部没有可以直接返回的对象, 则需要生成一个临时对象进行返回
     * 如果返回 const& 会导致悬垂引用
     */
    std::vector<Node *> get_dependencies()
    {
        return dependencies;
    }
};
